package io.github.veigara.tcp.framework.service;

import io.github.veigara.tcp.framework.model.DeviceConnection;
import io.github.veigara.tcp.framework.model.DeviceConnectionInfo;

import java.util.List;
import java.util.Map;

public interface DeviceConnectionService {

    /**
     * 保存设备连接信息
     */
    void saveDeviceConnection(String deviceTag,DeviceConnectionInfo connection);

    /**
     * 获取设备连接信息
     */
    DeviceConnectionInfo getDeviceConnection(String deviceTag,String deviceId);

    /**
     * 移除设备连接信息
     */
    void removeDeviceConnection(String deviceTag,String deviceId);

    /**
     * 更新设备最后活跃时间
     */
    void updateLastActiveTime(String deviceTag,String deviceId);

    /**
     * 获取设备连接的服务器地址
     */
    String getDeviceServer(String deviceTag,String deviceId);

    /**
     * 获取所有设备连接信息
     */
    Map<String, List<DeviceConnection>> getAllDeviceConnections();

    /**
     * 根据设备类型获取所有设备连接信息
     */
    List<DeviceConnection> getAllDeviceConnections(String deviceTag);
}
